\documentclass{acm_proc_article-sp}
\usepackage[utf8]{inputenc}
\usepackage{color}

\def\inputfig#1{\input #1}
\def\inputtex#1{\input #1}
\def\inputal#1{\input #1}
\def\inputcode#1{\input #1}

\inputtex{logos.tex}
\inputtex{refmacros.tex}
\inputtex{other-macros.tex}

\begin{document}
\title{Fast Generic Dispatch for Common Lisp}
\numberofauthors{1}
\author{\alignauthor
Robert Strandh\\
\affaddr{University of Bordeaux}\\
\affaddr{351, Cours de la Libération}\\
\affaddr{Talence, France}\\
\email{robert.strandh@u-bordeaux1.fr}}

\toappear{Permission to make digital or hard copies of all or part of
  this work for personal or classroom use is granted without fee
  provided that copies are not made or distributed for profit or
  commercial advantage and that copies bear this notice and the full
  citation on the first page. Copyrights for components of this work
  owned by others than the author(s) must be honored. Abstracting with
  credit is permitted. To copy otherwise, or republish, to post on
  servers or to redistribute to lists, requires prior specific
  permission and/or a fee. Request permissions from
  Permissions@acm.org.

  ILC '14, August 14 - 17 2014, Montreal, QC, Canada
  Copyright is held by the owner/author(s). Publication rights licensed to ACM.
  ACM 978-1-4503-2931-6/14/08\$15.00.
  http://dx.doi.org/10.1145/2635648.2635654}

\maketitle

\begin{abstract}
We describe a technique for generic dispatch that is adapted to modern
computers where accessing memory is potentially quite expensive.
Instead of the traditional hashing scheme used by PCL
\cite{Kiczales:1990:EMD:91556.91600}, we assign a \emph{unique number}
to each class, and the dispatch consists of comparisons of the number
assigned to an instance with a certain number of (usually small)
constant integers.  While our implementation (SICL) is not yet in a
state where we are able to get exact performance figures, a
conservative simulation suggests that our technique is significantly
faster than the one used in SBCL, which uses PCL, and indeed faster
than the technique used by most high-performance \cl{}
implementations.  Furthermore, existing work
\cite{Zendra:1997:EDD:263698.263728} using a similar technique in the
context of static languages suggests that perfomance can improve
significantly compared to table-based techniques.
\end{abstract}

\category{D.3.4}{Programming Languages}{Processors}
[Code generation, Optimization, Run-time environments]

\terms{Algorithms, Languages, Performance}

\keywords{\clos{}, \cl{}, Generic dispatch, Method dispatch}

\inputtex{sec-introduction.tex}
\inputtex{sec-previous.tex}
\inputtex{sec-our-method.tex}
\inputtex{sec-performance.tex}
\inputtex{sec-conclusions.tex}
\inputtex{sec-acknowledgements.tex}

\bibliographystyle{abbrv}
\bibliography{generic-dispatch}
\end{document}
